package com.ruoyi.cart.utils;

import com.ruoyi.cart.domain.CartSkuVO;
import com.ruoyi.cart.domain.CartVO;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author lemon
 * @date 2024/12/29 19:39
 **/

public class CartUtils {

    /**
     * 将Redis中的明细转换成购物车集合
     * @param list 明细
     * @return 购物车
     */
    public static List<CartVO> cartSkuVOS2CartVOS(List<CartSkuVO> list){
        // 使用一个Map来存储分组后的数据，key是merchantId，value是对应的CartVO对象
        Map<Long, CartVO> cartMap = new HashMap<>();

        // 遍历CartSkuVO列表
        for (CartSkuVO cartSkuVO : list) {
            Long merchantId = cartSkuVO.getMerchantId();
            // 如果Map中还没有这个merchantId对应的CartVO对象，就创建一个新的
            if (!cartMap.containsKey(merchantId)) {
                CartVO cartVO = new CartVO();
                cartVO.setMerchantId(merchantId);
                cartVO.setMerchantName(cartSkuVO.getMerchantName());
                cartVO.setList(new ArrayList<>());
                cartMap.put(merchantId, cartVO);
            }
            // 将CartSkuVO添加到对应merchantId的CartVO的列表中
            CartVO cartVO = cartMap.get(merchantId);
            cartVO.getList().add(cartSkuVO);
        }
        return new ArrayList<>(cartMap.values());
    }
}
